home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
game
/
patch
/
StrmblHD.lha
/
Stormball
/
src
/
StormballHDDev
/
SB.asm
< prev
next >
Wrap
Assembly Source File
|
1997-07-30
|
3KB
|
174 lines
; *** Stormball HD Loader V1.2
; *** Written by Keith Krellwitz (kkrellwi@nmu.edu)
MACHINE 68000
include "/lib/libs.i"
include "/lib/macros.i"
include "/lib/refs.i"
HD_PARAMS "sb.d","CON:20/20/400/200/Stormball HD Loader/AUTO",STD_DISK_SIZE,1
_loader:
Mac_printf "Stormball HD Loader v1.2"
Mac_printf "Programmed by Keith Krellwitz (Abaddon) ©1997"
Mac_printf "Thanks to Jean-François Fabre"
JSRABS LoadDisks
JSRABS TransfRoutines
move.l #CACRF_CopyBack,D1
moveq.l #0,D0
JSRABS Degrade
GO_SUPERVISOR
SAVE_OSDATA $80000
GETUSRADDR SBBoot
move.l d0,a0
jmp (a0)
_UserPatchRoutines:
SBBoot:
LEA $0007F000,A7
MOVE.W #$7FFF,$00DFF09A
MOVE.W #$7FFF,$00DFF09C
MOVE.W #$7FFF,$00DFF096
MOVE #$2700,SR
move.l #$0,d0
move.l #$0,d3
lea $800,a0
move.l #$28f,d1 ;<--track offset of main in image
move.l #$be,d2 ;<--length of main
JSRGEN ReadRobSectorsFast
bsr patch
JSRGEN FlushCachesHard
JSRGEN ResetSprites
jmp $800
patch:
bsr patloader1
bsr patprot
bsr patquit
bsr patldsv
rts
patloader1:
PATCHGENJSR $73d4,ReadRobSectorsFast
move.l #$4cdf3ffe,$73da
move.w #$4e75,$73de
JSRGEN FlushCachesHard
rts
patprot:
move.b #$ff,$f7c8
move.l #$6000024a,$d16e
JSRGEN FlushCachesHard
rts
patquit:
PATCHUSRJSR $9d80,KbInt
JSRGEN FlushCachesHard
rts
patldsv:
PATCHUSRJSR $7386,diskcheck
PATCHUSRJSR $3af2,loadsave
PATCHUSRJSR $3aca,loadsave
JSRGEN FlushCachesHard
rts
diskcheck:
moveq #$0,d0
cload:
cmpi.w #$3,d7
beq clr1
csave:
cmpi.w #$4,d7
beq clr1
bra check
clr1:
STORE_REGS
moveq #$1e,d0
clear:
clr.b (a0)+
dbf d0,clear
RESTORE_REGS
lea $34a2d,a1
bra cdone
check:
jmp $73ca
cdone:
JSRGEN FlushCachesHard
rts
loadsave:
cmpi.w #$8000,d3 ;load
bne save
STORE_REGS
lea $48ab0,a1
lea savename(pc),a0
bsr convert
move.l #$26,d1
JSRGEN ReadFileHD
RESTORE_REGS
bra done
save:
cmpi.w #$8001,d3
bne done
STORE_REGS
lea $48ab0,a1
lea savename(pc),a0
bsr convert
move.l #$26,d1
JSRGEN WriteFileHD
RESTORE_REGS
bra done
done:
JSRGEN FlushCachesHard
rts
convert:
STORE_REGS
move d4,d0
lsr #4,d0
bsr nibble
move.b d0,7(a0)
move.b d4,d0
bsr nibble
move.b d0,8(a0)
RESTORE_REGS
JSRGEN FlushCachesHard
rts
nibble:
and.b #$f,d0
addi.b #$30,d0
cmp.b #$3a,d0
bcs cok
addi.b #$7,d0
cok:
JSRGEN FlushCachesHard
rts
KbInt:
move.b d0,$9d4e
cmp.b #$59,d0 ; f10
bne noquit
JSRGEN InGameExit
noquit:
rts
savename:
dc.b "sb.save00",0
even
_general_pbuffer
dc.l 0
_user_pbuffer
dc.l 0
_EndUserPatchRoutines: